<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>作用域练习</title>
    </title>
</head>

<body>
    <script>
        // 全局作用域验证，通过var声明变量a=1，声明函数A在控制台打印 window 可以查看到 window  里的 a 和函数A
        // var a = 1
        // var hanshuA = function() {}

        // 局部作用域
        // var b = 1
        // function fn () { 
        //     var a = 1 
        //     a = a + b
        //     console.log(a)
        //  }
        // fn()
        // fn()
        // 验证：函数fn1与函数fn相邻，打印结果为fn1未定义，说明局部作用域函数不能访问临近的函数
        // function fn1 () {
        //     console.log(a)
        // }
        // fn1()

        // ES6之前作用域：输出结果为1该作用域为window
        // if (true) {
        //     var a = 1
        // }
        // console.log(a)
        //输出结果为2，说明仍可以调用函数 
        // function fn() {
        //     if (true) {
        //         var a = 2
        //     }
        //     console.log(a)
        // }
        // fn()

        //输出结果为a未定义，说明使用let声明变量时形成了一个块级作用域，全局上访问不到
        // if (true) {
        //     let a = 1
        // }
        // console.log(a)

    </script>

</body>

</html>